home *** CD-ROM | disk | FTP | other *** search
/ IRIX Installation Tools & Overlays 2002 May / SGI IRIX Installation Tools & Overlays 2002 May - Disc 3.iso / relnotes / compiler_eoe / chA.z / chA
Text File  |  2002-04-11  |  3KB  |  132 lines

  1.  
  2.  
  3.  
  4.                                                - 1 -
  5.  
  6.  
  7.  
  8.                     7.3.1.3m Base Compiler Execution Environment Release Notes
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.                                                - 2 -
  69.  
  70.  
  71.  
  72.                     1.  _D_y_n_a_m_i_c__S_h_a_r_e_d__O_b_j_e_c_t_s
  73.  
  74.                     A Dynamic Shared Object, or DSO, is an ELF
  75.                     format object file, very similar in structure to
  76.                     an executable program but with no "main".  It
  77.                     has a shared component, consisting of shared
  78.                     text and read-only data; a private component,
  79.                     consisting of data and the GOT (Global Offset
  80.                     Table); several sections that hold information
  81.                     necessary to load and link the object; and a
  82.                     liblist, the list of other shared objects
  83.                     referenced by this object. Most of the libraries
  84.                     supplied by SGI are available as dynamic shared
  85.                     objects.
  86.  
  87.                     A DSO is relocatable at runtime; it can be
  88.                     loaded at any virtual address.  A consequence of
  89.                     this is that all references to external symbols
  90.                     must be resolved at runtime.  References from
  91.                     the private region (.e.g. from private data) are
  92.                     resolved once at load-time; references from the
  93.                     shared region (e.g. from shared text) must go
  94.                     through an indirection table (GOT) and hence
  95.                     have a small performance penalty associated with
  96.                     them.
  97.  
  98.                     Code compiled for use in a shared object is
  99.                     referred to as Position Independent Code (PIC),
  100.                     whereas non-PIC is usually referred to as non-
  101.                     shared.  Non-shared code and PIC cannot be mixed
  102.                     in the same object.
  103.  
  104.                     At Runtime, eeeexxxxeeeecccc loads the main program and then
  105.                     loads rrrrlllldddd,,,, the runtime linking loader, which
  106.                     finishes the exec operation.  Starting with
  107.                     main's liblist, rrrrlllldddd loads each shared object on
  108.                     the list, reads that object's liblist, and
  109.                     repeats the operation until all shared objects
  110.                     have been loaded.  Next, rrrrlllldddd allocates common
  111.                     and fixes up symbolic references in each loaded
  112.                     object.  (This is necessary because we don't
  113.                     know until runtime where the object will be
  114.                     loaded.)  Next, each object's _i_n_i_t code is
  115.                     executed.  Finally, control is transferred to
  116.                     "__start".
  117.  
  118.                     For a more complete discussion of DSOs,
  119.                     including answers to questions frequently asked
  120.                     about them, see the _d_s_o(_5) man page.
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.